" An example for a vimrc file.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2008 Dec 17
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"	      for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"	    for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

"if has("vms")
"  set nobackup		" do not keep a backup file, use versions instead
"else
"  set backup		" keep a backup file
"endif
set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands
set incsearch		" do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
inoremap <C-U> <C-G>u<C-U>

" In many terminal emulators the mouse works just fine, thus enable it.
"if has('mouse')
"  set mouse=a
"endif

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  " Also don't do it when the mark is in the first line, that is the default
  " position when opening a file.
  autocmd BufReadPost *
    \ if line("'\"") > 1 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END

else

  set autoindent		" always set autoindenting on

endif " has("autocmd")

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
if !exists(":DiffOrig")
  command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
		  \ | wincmd p | diffthis
endif

" Custom settings
set nocompatible
set history=50
set backspace=indent,eol,start
set ruler
set mouse=""
set showcmd
set tabstop=4
set noincsearch
set shiftwidth=4
set number
set fileformat=dos
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set encoding=utf-8
set winaltkeys=no
"set completeopt+=menuone
set completeopt-=preview
set virtualedit=block
set ignorecase
set smartcase
set noincsearch
set modeline
set modelines=5
language messages en_US.utf-8
colorscheme molokai
let g:mapleader=","
"let g:php_sql_query=1
noremap <A-c> "+y
noremap <A-v> "+p
vnoremap <A-x> :d +<CR>
inoremap <A-v> <C-O>"+p
cnoremap <A-v> <C-R>+
inoremap <C-J> <Down>
inoremap <C-K> <Up>
inoremap <C-H> <Left>
inoremap <C-L> <Right>
"noremap j gj
"noremap k gk
"noremap $ g$
"noremap ^ g^
noremap gQ Q
noremap <A-1> 1gt
noremap <A-2> 2gt
noremap <A-3> 3gt
noremap <A-4> 4gt
noremap <A-5> 5gt
noremap <A-6> 6gt
noremap <A-7> 7gt
noremap <A-8> 8gt
noremap <A-9> 9gt
nnoremap <silent> <leader>ff :call FormatFile()<CR>
nnoremap <leader>ee :tabe $VIM\vimrc<CR>
nnoremap <leader>eg :tabe $VIM\gvimrc<CR>
nnoremap <leader>hh :tab help<CR>
nnoremap <leader>hi :tab help intro.txt<CR>
nnoremap <leader>hq :tab help quickref.txt<CR>
nnoremap <leader>he :tab help eval.txt<CR>
nnoremap <leader>hf :tab help function-list<CR>
autocmd! BufWritePost vimrc source $VIM\vimrc

" pathogen plug manager
call pathogen#infect()

" NERD_tree settings
noremap <F2> :NERDTreeToggle<CR>

" DoxygenToolKit settings
let g:DoxygenToolkit_briefTag_pre=""
nnoremap <silent> <leader>cc :Dox<CR>

" supertab settings
let g:SuperTabDefaultCompletionType="context"
let g:SuperTabContextDefaultCompletionType="<C-X><C-O>"

" taglist settings
let g:Tlist_Show_One_File=1
let g:Tlist_Use_Right_Window=1
let g:Tlist_GainFocus_On_ToggleOpen=1
noremap <F12> :TlistToggle<CR>

" load_template settings
let g:template_path=$VIM . '\vimfiles\template\'

" function
"======================================================================================================
function! FormatFile()
	let l:filetype=&filetype
	if l:filetype=="xhtml"
		call TidyXhtml()
	elseif l:filetype=="javascript"
		call g:Jsbeautify()
	endif
endfunction

function! TidyXhtml()
	if &fileencoding=="utf-8"
		let l:charset="utf8"
	else
		let l:charset="raw"
	endif
	exe '!""' . $VIM . '\vimfiles\bin\xtidy.bat" "' . expand('%') . '" "' . l:charset . '""'
endfunction
